Wrapper ক্লাস Java তে প্রিমিটিভ ডেটা টাইপগুলির জন্য একটি অবজেক্ট ক্লাস সরবরাহ করে। Java তে সমস্ত primitive data types যেমন int, char, boolean ইত্যাদি অবজেক্ট টাইপের ডেটা টাইপের মাধ্যমে কাজ করা সম্ভব নয়। কিন্তু অনেক সময় আমাদের object টাইপের ডেটা প্রয়োজন হয় (যেমন Collections API), তখন Wrapper Classes সাহায্য করে।
Wrapper ক্লাস কী?
Wrapper ক্লাস গুলি প্রিমিটিভ ডেটা টাইপগুলির জন্য তৈরি করা অবজেক্ট ক্লাস। Java তে প্রত্যেকটি primitive type-এর জন্য একটি Wrapper class রয়েছে, যা সেই primitive type কে একটি object-এ রূপান্তরিত করতে সক্ষম। Wrapper class গুলি Java-এ primitive types এবং objects এর মধ্যে পারস্পরিক রূপান্তরের কাজ সম্পন্ন করে।
Primitive Types এবং তাদের Wrapper Classes:
| Primitive Type | Wrapper Class |
|---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
Wrapper ক্লাসের প্রয়োজনীয়তা:
Collections API-এর সাথে কাজ:
- Collections Framework Java-তে
List,Set,Mapইত্যাদি ডেটা স্ট্রাকচার ব্যবহারের জন্য object টাইপের উপাদান প্রয়োজন হয়। কিন্তু primitive types (int,char,boolean, etc.) শুধুমাত্র primitive values হিসেবে কাজ করতে পারে, Object হিসেবে নয়। তাই Wrapper classes ব্যবহার করে primitive values-কে objects-এ রূপান্তর করা হয়।
উদাহরণ:
ArrayList<Integer>এintব্যবহার করা সম্ভব নয়, কিন্তুIntegerব্যবহার করা যায়।- Collections Framework Java-তে
Autoboxing and Unboxing:
- Java 5 থেকে autoboxing এবং unboxing নামে একটি ফিচার এসেছে, যা primitive types এবং তাদের corresponding wrapper classes এর মধ্যে স্বয়ংক্রিয় রূপান্তর করতে সাহায্য করে।
- Autoboxing: primitive value থেকে object এ রূপান্তর।
- Unboxing: object থেকে primitive value এ রূপান্তর।
উদাহরণ:
Integer intObj = 10; // Autoboxing: int -> Integer int x = intObj; // Unboxing: Integer -> int- Java 5 থেকে autoboxing এবং unboxing নামে একটি ফিচার এসেছে, যা primitive types এবং তাদের corresponding wrapper classes এর মধ্যে স্বয়ংক্রিয় রূপান্তর করতে সাহায্য করে।
Nullability:
- Primitive types কখনো null হতে পারে না, কিন্তু Wrapper classes null হতে পারে। এটি গুরুত্বপূর্ণ যখন আপনাকে nullable values প্রয়োজন হয়, যেমন ডাটাবেস বা কোনো API-তে null ভ্যালু গ্রহণ করতে।
উদাহরণ:
Integer i = null; // Possible to assign null to Integer int x = null; // Compilation error, because primitive types cannot be nullUtility Methods:
- Wrapper classes বিভিন্ন utility methods সরবরাহ করে যা primitive types নিয়ে কাজ করতে সহায়তা করে, যেমন সংখ্যা থেকে স্ট্রিং এ রূপান্তর বা স্ট্রিং থেকে সংখ্যা রূপান্তর। উদাহরণস্বরূপ,
Integer.parseInt()অথবাDouble.parseDouble()মেথড।
উদাহরণ:
int num = Integer.parseInt("123"); // String to int conversion String str = Integer.toString(456); // int to String conversion- Wrapper classes বিভিন্ন utility methods সরবরাহ করে যা primitive types নিয়ে কাজ করতে সহায়তা করে, যেমন সংখ্যা থেকে স্ট্রিং এ রূপান্তর বা স্ট্রিং থেকে সংখ্যা রূপান্তর। উদাহরণস্বরূপ,
Comparisons and Sorting:
- Wrapper ক্লাসগুলি Comparable ইন্টারফেস ইমপ্লিমেন্ট করে, যা primitive types এর সাথে সহজে comparison করতে সাহায্য করে। এটা বিশেষভাবে দরকারি যখন sorting বা comparison করা হয়।
উদাহরণ:
Integer num1 = 10; Integer num2 = 20; System.out.println(num1.compareTo(num2)); // Output: -1 (num1 < num2)
Wrapper ক্লাসের উদাহরণ:
public class WrapperExample {
public static void main(String[] args) {
// Autoboxing: primitive int to Integer object
Integer intObject = 100;
System.out.println("Integer object: " + intObject);
// Unboxing: Integer object to primitive int
int num = intObject; // Autounboxing
System.out.println("Primitive int: " + num);
// Using utility methods of Wrapper class
String str = "200";
int parsedInt = Integer.parseInt(str); // String to int
System.out.println("Parsed int: " + parsedInt);
// Wrapper class to String conversion
String intToString = Integer.toString(123); // int to String
System.out.println("Converted String: " + intToString);
}
}
Output:
Integer object: 100
Primitive int: 100
Parsed int: 200
Converted String: 123
Wrapper classes Java-তে primitive types এবং objects এর মধ্যে পারস্পরিক রূপান্তর সহজ করে, যা Collections API ব্যবহার, nullability, utility methods এবং comparison/sorting এর জন্য অত্যন্ত প্রয়োজনীয়। Autoboxing এবং Unboxing এর সুবিধার মাধ্যমে, Java এর primitive types এবং Wrapper classes এর মধ্যে যেকোনো রূপান্তর অত্যন্ত সহজ ও সুবিধাজনক হয়ে ওঠে।
Read more